<?php
/**
 * User: YL
 * Date: 2019/08/20
 */

namespace restful\traits;

trait ParamsHandle
{
    // 过滤参数
    protected $filterParams = [];
    // 允许的参数
    protected $allowParams = [];

    /**
     * 过滤参数
     * @param  array  $params 请求参数
     * @param  array  $append 附加参数
     * @return array
     */
    protected function filterParams(array $params, array $append = [])
    {
        $keys = array_merge($this->filterParams, $append);
        return array_filter($params, function ($k) use ($keys) {
            return ! in_array($k, $keys);
        }, ARRAY_FILTER_USE_KEY);
    }

    /**
     * 允许的参数
     * @param  array  $params 请求参数
     * @param  array  $append 附加参数
     * @return array
     */
    protected function allowParams(array $params, array $append = [])
    {
        $keys = array_merge($this->allowParams, $append);
        return array_filter($params, function ($k) use ($keys) {
            return in_array($k, $keys);
        }, ARRAY_FILTER_USE_KEY);
    }
}